package com.apa7.keepaccounts.service;

import com.apa7.keepaccounts.dto.ReturnData;
import com.apa7.keepaccounts.entity.PayMode;
import com.apa7.keepaccounts.entity.PayType;
import com.apa7.keepaccounts.entity.User;

import java.util.List;

public interface UserService{

    /**
     * 获取个人信息
     * @param key 用户的key值
     * @return user的实体类
     */
    User getInfo(String key);

    /**
     * 设置支出类型类型置顶
     * @param key 用户的key
     * @param payTypeIndex 要置顶的索引
     * @return 置顶以后的PayType
     */
    List<PayType> payTypeTop(String key,int payTypeIndex);

    /**
     * 设置支付方式置顶
     * @param key 用户的key
     * @param payModeIndex 要置顶的索引
     * @return 置顶以后的PayMode
     */
    List<PayMode> payModeTop(String key,int payModeIndex);

    /**
     * 添加一个支出类型
     * @param key 用户的key
     * @param payType 添加的信息
     * @return 添加以后的PayType
     */
    List<PayType> payTypeAdd(String key,PayType payType);

    /**
     * 添加一个支付方式
     * @param key 用户的key
     * @param payMode 添加以后的PayMode
     * @return returnData
     */
    List<PayMode> payModeAdd(String key, PayMode payMode);

    /**
     * 删除一个支出类型
     * @param key 用户的key
     * @param payTypeIndex 支出的索引
     * @return 删除以后的PayType
     */
    List<PayType> payTypeDelete(String key,int payTypeIndex);

    /**
     * 删除一个支付方式
     * @param key 用户的key
     * @param payModeIndex 支出方式的索引
     * @return 删除以后的PayMode
     */
    List<PayMode> payModeDelete(String key,int payModeIndex);
}
